package com.biz.primus.ms.order.service.helper;

import com.biz.primus.model.oms.stream.OrderCollectionChannel;
import com.biz.primus.ms.order.stream.OrderCollectionSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.stereotype.Service;

/**
 * 订单数据消息助理<br><p>
 *   推送新订单给OMS；
 *   接收OMS修改后的订单；
 * </p>
 *
 * @author Tiger Feng
 * @date 2017年11月23日
 */
@Service
public class OrderDataStreamHelper {
    @Autowired
    private OrderCollectionSource orderCollectionSource;

    /**
     * 发送订单
     * <br><p>
     * 推送情况：<br>
     *   1、前端新建订单，支付方式为货到付款；
     *   2、前端订单支付完成后；
     * </p>
     *
     * @param orderData 订单信息
     */
    public void sendNewOrder(OrderCollectionChannel.OrderData orderData) {
        orderCollectionSource.orderDataOutput().send(MessageBuilder.withPayload(orderData).build());
    }


//    /** FIXME oms以外的模块不要监听这个渠道 by yanweijin
//     * 接收OMS修改的订单
//     *
//     * @param orderData 订单信息
//     */
//    @StreamListener(OrderCollectionSink.DATA)
//    public void receiveModifyOrder(OrderCollectionChannel.OrderData orderData) {
//        // 修改商品单价，不再重新走促销和优惠券结算
//    }

}
